/*
 * > /*
>  * INSANE - Interactive Structural Analysis Environment
>  *
>  * Copyright (C) 2003-2004
>  * Universidade Federal de Minas Gerais
>  * Escola de Engenharia
>  * Departamento de Engenharia de Estruturas
>  *
>  * Author's email :     insane@dees.ufmg.br
>  * Author's Website :   http://www.dees.ufmg.br/insane
>  *
>  * This program is free software; you can redistribute it and/or
>  * modify it under the terms of the GNU General Public License
>  * as published by the Free Software Foundation; either version 2
>  * of the License, or any later version.
>  *
>  * This program is distributed in the hope that it will be useful,
>  * but WITHOUT ANY WARRANTY; without even the implied warranty of
>  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>  * GNU General Public License for more details.
>  *
>  * You should have received a copy of the GNU General Public License
>  * along with this program; if not, write to the Free Software
>  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-
> 1307, USA.
 *
 */

/*
 * Created on 04/07/2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package br.ufmg.dees.insane.xyplot.xyplot_view.dialog;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import br.ufmg.dees.insane.xyplot.xyplot_view.InterfaceXYPlot;
import br.ufmg.dees.insane.xyplot.xyplot_view.XYPlotViewState;
import br.ufmg.dees.insane.xyplot.xyplot_view.command.LastZoomCommand;


/**
 * @author  Samuel Silva Penna  
 * TODO To change the template for this generated type comment go to  Window - Preferences - Java - Code Style - Code Templates
 */
public class SequenceDialog extends SimpleDialog{
    
	private static final long serialVersionUID = 1L;
	private InterfaceXYPlot parent;
    private JPanel seqColorTitlePane = new JPanel();
    private JPanel lineColorPane = new JPanel();
    private JPanel marksColorsPane = new JPanel();
    private JComboBox marksTypeCombo;
    private JComboBox marksSizeCombo;
    private JComboBox textMarksFontCombo;
    private JComboBox textMarksFontSizeCombo;
    private JComboBox titleFontCombo;
    private JComboBox titleStyleCombo;
    private JComboBox lineTypeCombo;
    private JComboBox jointStyleCombo;
    private JTextField seqTitleColorField = new JTextField();
    private JTextField lineColorField = new JTextField();
    private JTextField marksColorField = new JTextField();
    private JTextField sequenceTitleField = new JTextField();
    private DecimalField sequenceTitleSizeDecimalField; 
    private DecimalField lineWidthDecimalField; 
    private DecimalField markSizeDecimalField;
    private DecimalField markFontSizeDecimalField;
    private JButton chooseSeqTitleColor = new JButton("Choose");
    private JButton chooseLineColor = new JButton("Choose");
    private JButton chooseSequenceColor = new JButton("Choose");
    private JColorChooser colorChooser = new JColorChooser();
    private JCheckBox marksOnOff = new JCheckBox("");
    private JCheckBox textMarksOnOff = new JCheckBox("");
    private String[] textFontStr;
    private String[] lineTypeStr;
    private String[] jointStyleStr;
    private String[] textFontSizeChosen;
    private String[] marksTypeChosen; 
    private String[] marksSizeChosen;
    private Color markColor;
    private Color titleColor;
    private Color lineColor;
    private boolean checkMarksOnOff;
    private boolean checkTextMarksOnOff;
    private String title;
    private String sequenceTitle;
    private int marksTypeIndex;
    private int TextMarksIndex;
    private int sizeFontSequenceTitle;
    private int markSize;
    private int markFontSize;
    private float lineWidth;
    private NumberFormat numberFormat;
    private XYPlotViewState state;
    
    public SequenceDialog(String Title){
        this.title = Title;        
    }
    
    /**
     * Method to add an input table.
     *
     * @param name  a table name.
     * @param colNames an array with the table column names.
     * @see javax.swing
     */
    public JPanel addSequenceTable(String label ) {
        
    	 setUpFormat();
    	
    	 //Sets up the main panel
        JPanel mainPane = new JPanel();
        mainPane.setPreferredSize(new Dimension(350,470));
        mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.Y_AXIS));      
         
        //set the sequence title
        JPanel titlePane = new JPanel();
        titlePane.setLayout(new GridLayout(4,2,2,2));          
        titlePane.setMaximumSize(new Dimension(350,150));
        titlePane.setBorder(BorderFactory.createCompoundBorder(
        BorderFactory.createTitledBorder("Caption"),
        BorderFactory.createEmptyBorder(2,2,2,2)));
        //title field 
        titlePane.add(new JLabel("Sequence Title:"));
        sequenceTitleField.setMaximumSize(new Dimension(75,25));
        sequenceTitleField.setPreferredSize(new Dimension(75,25));
        sequenceTitleField.setMinimumSize(new Dimension(75,25));
        sequenceTitleField.setSize(new Dimension(75,25));  
        titlePane.add(sequenceTitleField);
        //set the title font
        textFontStr = new String[5];
        textFontStr[0] = "Arial";
        textFontStr[1] = "Monospaced";
        textFontStr[2] = "SansSerif";
        textFontStr[3] = "Time"; 
        textFontStr[4] = "NONE"; 
        titleFontCombo = new JComboBox(textFontStr);
        titlePane.add(new JLabel("Text font:"));
        titleFontCombo.setMaximumSize(new Dimension(75,25));
        titleFontCombo.setPreferredSize(new Dimension(75,25));
        titleFontCombo.setMinimumSize(new Dimension(75,25));
        titleFontCombo.setSize(new Dimension(75,25));  
        titlePane.add(titleFontCombo); 
        // title font size
        titlePane.add(new JLabel("Font Size:"));
        sequenceTitleSizeDecimalField = new DecimalField(sizeFontSequenceTitle,10,numberFormat);
        sequenceTitleSizeDecimalField.setMaximumSize(new Dimension(75,25));
        sequenceTitleSizeDecimalField.setPreferredSize(new Dimension(75,25));
        sequenceTitleSizeDecimalField.setMinimumSize(new Dimension(75,25));
        sequenceTitleSizeDecimalField.setSize(new Dimension(75,25));  
        sequenceTitleSizeDecimalField.setEditable(true);
        titlePane.add(sequenceTitleSizeDecimalField);
        //title font Style
        String[] textStyle = new String[3];
        textStyle[0] = "Plain";
        textStyle[1] = "Bold";
        textStyle[2] = "Italic";
        titleStyleCombo = new JComboBox(textStyle);
        titlePane.add(new JLabel("Font Style:"));
        titleStyleCombo.setMaximumSize(new Dimension(75,25));
        titleStyleCombo.setPreferredSize(new Dimension(75,25));
        titleStyleCombo.setMinimumSize(new Dimension(75,25));
        titleStyleCombo.setSize(new Dimension(75,25));  
        titlePane.add(titleStyleCombo); 
        //Setting subpanel colors Title panel 
        seqColorTitlePane = new JPanel();
        seqColorTitlePane.setLayout(new BoxLayout(seqColorTitlePane, BoxLayout.Y_AXIS));
        seqColorTitlePane.setMaximumSize(new Dimension(350,60));
        seqColorTitlePane.setBorder(BorderFactory.createCompoundBorder(
        		BorderFactory.createTitledBorder(""),
        		BorderFactory.createEmptyBorder(2,2,2,2)));
        //Sets the colors title panel
        seqColorTitlePane.setLayout(new GridLayout(1,3,3,3));
        seqColorTitlePane.add(new JLabel("Title Color:"));
        seqTitleColorField = new JTextField();
        seqTitleColorField.setEditable(false);
        seqTitleColorField.setBackground(titleColor);
        seqColorTitlePane.add(seqTitleColorField);
        chooseSeqTitleColor = new JButton("Choose");
        seqColorTitlePane.add(chooseSeqTitleColor);
        chooseSeqTitleColor.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                    seqTitleColorActionPerformed(e);
                }
            } );
        
        //set the sequence linePane
        JPanel linePane = new JPanel();
        linePane.setLayout(new GridLayout(3,2,2,2));          
        linePane.setMaximumSize(new Dimension(350,85));
        linePane.setBorder(BorderFactory.createCompoundBorder(
        BorderFactory.createTitledBorder("Sequence Line"),
        BorderFactory.createEmptyBorder(2,2,2,2)));
        //set the line Type
        lineTypeStr = new String[7];
        lineTypeStr[0] = "Solid";
        lineTypeStr[1] = "Dashed";
        lineTypeStr[2] = "Dotted";
        lineTypeStr[3] = "Dashed_Dot"; 
        lineTypeStr[4] = "Dashed_Dot_Dot"; 
        lineTypeStr[5] = "Dashed_Dot_Dot_Dot";
        lineTypeStr[6] = "NONE";
        lineTypeCombo = new JComboBox(lineTypeStr);
        linePane.add(new JLabel("Line Type:"));
        lineTypeCombo.setMaximumSize(new Dimension(75,25));
        lineTypeCombo.setPreferredSize(new Dimension(75,25));
        lineTypeCombo.setMinimumSize(new Dimension(75,25));
        lineTypeCombo.setSize(new Dimension(75,25));  
        linePane.add(lineTypeCombo); 
        //jointStyle
        String[] jointStyleStr = new String[3];
        jointStyleStr[0] = "JOIN_BEVEL";
        jointStyleStr[1] = "JOIN_MITER";
        jointStyleStr[2] = "JOIN_ROUND";
        jointStyleCombo = new JComboBox(jointStyleStr);
        linePane.add(new JLabel("Joint Style:"));
        jointStyleCombo.setMaximumSize(new Dimension(75,25));
        jointStyleCombo.setPreferredSize(new Dimension(75,25));
        jointStyleCombo.setMinimumSize(new Dimension(75,25));
        jointStyleCombo.setSize(new Dimension(75,25));  
        linePane.add(jointStyleCombo); 
        // line width
        linePane.add(new JLabel("Line Width:"));
        lineWidthDecimalField = new DecimalField(lineWidth,10,numberFormat);
        lineWidthDecimalField.setMaximumSize(new Dimension(75,25));
        lineWidthDecimalField.setPreferredSize(new Dimension(75,25));
        lineWidthDecimalField.setMinimumSize(new Dimension(75,25));
        lineWidthDecimalField.setSize(new Dimension(75,25));  
        lineWidthDecimalField.setEditable(true);
        linePane.add(lineWidthDecimalField);
        //Setting subpanel colors line panel 
        lineColorPane = new JPanel();
        lineColorPane.setLayout(new BoxLayout(lineColorPane, BoxLayout.Y_AXIS));
        lineColorPane.setMaximumSize(new Dimension(350,60));
        lineColorPane.setBorder(BorderFactory.createCompoundBorder(
        		BorderFactory.createTitledBorder(""),
        		BorderFactory.createEmptyBorder(2,2,2,2)));
        lineColorPane.setLayout(new GridLayout(1,3,3,3));
        lineColorPane.add(new JLabel("Line Color:"));
        lineColorField = new JTextField();
        lineColorField.setEditable(false);
        lineColorField.setBackground(lineColor);
        lineColorPane.add(lineColorField);
        chooseLineColor = new JButton("Choose");
        lineColorPane.add(chooseLineColor);
        chooseLineColor.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                    lineColorActionPerformed(e);
                }
            } );      

        //Setting subpanel marks type 
        JPanel mksPane = new JPanel();
        mksPane.setLayout(new GridLayout(3,2,2,2));          
        mksPane.setMaximumSize(new Dimension(350,100));
        mksPane.setBorder(BorderFactory.createCompoundBorder(
        		BorderFactory.createTitledBorder("Marks"),
        		BorderFactory.createEmptyBorder(2,2,2,2)));
        mksPane.add(new JLabel("Mark type:"));
        //set the sequences mark
        marksTypeChosen = new String[10];
        marksTypeChosen[0] = "VLINE";
        marksTypeChosen[1] = "HLINE";
        marksTypeChosen[2] = "PLUS";
        marksTypeChosen[3] = "TIMES";
        marksTypeChosen[4] = "STAR";
        marksTypeChosen[5] = "CIRC";
        marksTypeChosen[6] = "SQUARE";
        marksTypeChosen[7] = "TRIANGLE";
        marksTypeChosen[8] = "DIAMOND";
        marksTypeChosen[9] = "NONE";
        marksTypeCombo = new JComboBox(marksTypeChosen);
        marksTypeCombo.setMaximumSize(new Dimension(75,25));
        marksTypeCombo.setPreferredSize(new Dimension(75,25));
        marksTypeCombo.setMinimumSize(new Dimension(75,25));
        marksTypeCombo.setSize(new Dimension(75,25));
        mksPane.add(marksTypeCombo);
        // markSize
        mksPane.add(new JLabel("Mark Size:"));
        markSizeDecimalField = new DecimalField(markSize,10,numberFormat);
        markSizeDecimalField.setMaximumSize(new Dimension(75,25));
        markSizeDecimalField.setPreferredSize(new Dimension(75,25));
        markSizeDecimalField.setMinimumSize(new Dimension(75,25));
        markSizeDecimalField.setSize(new Dimension(75,25));  
        markSizeDecimalField.setEditable(true);
        mksPane.add(markSizeDecimalField);
        //markFontSize
        mksPane.add(new JLabel("Mark Font Size:"));
        markFontSizeDecimalField = new DecimalField(markFontSize,10,numberFormat);
        markFontSizeDecimalField.setMaximumSize(new Dimension(75,25));
        markFontSizeDecimalField.setPreferredSize(new Dimension(75,25));
        markFontSizeDecimalField.setMinimumSize(new Dimension(75,25));
        markFontSizeDecimalField.setSize(new Dimension(75,25));  
        markFontSizeDecimalField.setEditable(true);
        mksPane.add(markFontSizeDecimalField);
        //Setting subpanel colors panel 
        marksColorsPane = new JPanel();
        marksColorsPane.setLayout(new BoxLayout(marksColorsPane, BoxLayout.Y_AXIS));
        marksColorsPane.setMaximumSize(new Dimension(350,60));
        marksColorsPane.setBorder(BorderFactory.createCompoundBorder(
        BorderFactory.createTitledBorder(""),
        BorderFactory.createEmptyBorder(2,2,2,2)));
        //Sets the colors panel
        marksColorsPane.setLayout(new GridLayout(1,3,3,3));
        marksColorsPane.add(new JLabel("Mark Color"));
        marksColorField = new JTextField();
        marksColorField.setEditable(false);
        marksColorField.setBackground(markColor);
        marksColorsPane.add(marksColorField);
        chooseSequenceColor = new JButton("Choose");
        marksColorsPane.add(chooseSequenceColor);
        chooseSequenceColor.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                    SequenceColorActionPerformed(e);
                }
            } );

        //Sets main panel
        mainPane.add(titlePane);
        mainPane.add(seqColorTitlePane);
        mainPane.add(linePane);
        mainPane.add(lineColorPane);
        mainPane.add(mksPane);
        mainPane.add(marksColorsPane);
        JPanel tablePane = new JPanel();
        tablePane.setLayout(new GridLayout(1,1,0,0));
        mainPane.add(tablePane);
       
       return mainPane; 
    
    } //End of addSequenceTable
    
    /**
     * This method is executed on OK button click.
     *
     */
    public void approvedPerform() {
        try {
            this.marksTypeIndex = this.marksTypeCombo.getSelectedIndex();
            this.TextMarksIndex = this.textMarksFontCombo.getSelectedIndex();
            this.setVisible(false);
            LastZoomCommand cmd = new LastZoomCommand(parent);
            cmd.execute();
       }catch (Exception err) {
            Toolkit.getDefaultToolkit().beep();
            this.setVisible(false);
       }
    }
    
    
    private void seqTitleColorActionPerformed(ActionEvent e) {
        seqTitleColorField.setBackground(JColorChooser.showDialog(this, "Choose Tilte Color", seqTitleColorField.getBackground()));
    }
    private void lineColorActionPerformed(ActionEvent e) {
        lineColorField.setBackground(JColorChooser.showDialog(this, "Choose Line Color", lineColorField.getBackground()));
    }
    
    private void SequenceColorActionPerformed(ActionEvent e) {
    	marksColorField.setBackground(JColorChooser.showDialog(this, "Choose Marks Color", marksColorField.getBackground()));
    }
    
    /**
     * Sets the number formater
     */
    private void setUpFormat() {
        numberFormat = (DecimalFormat)NumberFormat.getNumberInstance(Locale.UK);
        numberFormat.setMaximumFractionDigits(3);
    }
    
    public JTextField getSequenceColorField(){
        return this.marksColorField;
    }

    /**
	 * @return  Returns the markColor.
	 * @uml.property  name="markColor"
	 */
    public Color getMarkColor(){     
        return markColor;
    }

    /**
	 * @param markColor  The markColor to set.
	 * @uml.property  name="markColor"
	 */
    public void setMarkColor(Color currentSequenceColor){   
    	markColor = currentSequenceColor;
    }
    
    /**
	 * @return  Returns the checkMarksOnOff.
	 * @uml.property  name="checkMarksOnOff"
	 */
    public boolean getCheckMarksOnOff(){
        return checkMarksOnOff;
    }
 
    /**
	 * @param checkMarksOnOff  The checkMarksOnOff to set.
	 * @uml.property  name="checkMarksOnOff"
	 */
    public void setCheckMarksOnOff(boolean chk){
        checkMarksOnOff = chk;
    }
    
    /**
	 * @return  Returns the checkTextMarksOnOff.
	 * @uml.property  name="checkTextMarksOnOff"
	 */
    public boolean getCheckTextMarksOnOff(){
        return checkTextMarksOnOff;
    }
 
    /**
	 * @param checkTextMarksOnOff  The checkTextMarksOnOff to set.
	 * @uml.property  name="checkTextMarksOnOff"
	 */
    public void setCheckTextMarksOnOff(boolean chk){
        checkTextMarksOnOff = chk;
    }
     
    @SuppressWarnings("unused")
	private class ChoiceListener implements ActionListener{
        
        public void actionPerformed(ActionEvent event){
            
            if(marksOnOff.isSelected()){
                setCheckTextMarksOnOff(true);
            }else{
                setCheckTextMarksOnOff(false);
            }
            
            if(textMarksOnOff.isSelected()){
                setCheckTextMarksOnOff(true);
            }else{
                setCheckTextMarksOnOff(false);
            }
        }
        
    }

	/**
	 * @return  Returns the chooseLineColor.
	 * @uml.property  name="chooseLineColor"
	 */
	public JButton getChooseLineColor() {
		return chooseLineColor;
	}
	/**
	 * @param chooseLineColor  The chooseLineColor to set.
	 * @uml.property  name="chooseLineColor"
	 */
	public void setChooseLineColor(JButton chooseLineColor) {
		this.chooseLineColor = chooseLineColor;
	}
	/**
	 * @return  Returns the chooseSeqTitleColor.
	 * @uml.property  name="chooseSeqTitleColor"
	 */
	public JButton getChooseSeqTitleColor() {
		return chooseSeqTitleColor;
	}
	/**
	 * @param chooseSeqTitleColor  The chooseSeqTitleColor to set.
	 * @uml.property  name="chooseSeqTitleColor"
	 */
	public void setChooseSeqTitleColor(JButton chooseSeqTitleColor) {
		this.chooseSeqTitleColor = chooseSeqTitleColor;
	}
	/**
	 * @return  Returns the chooseSequenceColor.
	 * @uml.property  name="chooseSequenceColor"
	 */
	public JButton getChooseSequenceColor() {
		return chooseSequenceColor;
	}
	/**
	 * @param chooseSequenceColor  The chooseSequenceColor to set.
	 * @uml.property  name="chooseSequenceColor"
	 */
	public void setChooseSequenceColor(JButton chooseSequenceColor) {
		this.chooseSequenceColor = chooseSequenceColor;
	}
	/**
	 * @return  Returns the colorChooser.
	 * @uml.property  name="colorChooser"
	 */
	public JColorChooser getColorChooser() {
		return colorChooser;
	}
	/**
	 * @param colorChooser  The colorChooser to set.
	 * @uml.property  name="colorChooser"
	 */
	public void setColorChooser(JColorChooser colorChooser) {
		this.colorChooser = colorChooser;
	}
	/**
	 * @return  Returns the jointStyleCombo.
	 * @uml.property  name="jointStyleCombo"
	 */
	public JComboBox getJointStyleCombo() {
		return jointStyleCombo;
	}
	/**
	 * @param jointStyleCombo  The jointStyleCombo to set.
	 * @uml.property  name="jointStyleCombo"
	 */
	public void setJointStyleCombo(JComboBox jointStyleCombo) {
		this.jointStyleCombo = jointStyleCombo;
	}
	/**
	 * @return  Returns the jointStyleStr.
	 * @uml.property  name="jointStyleStr"
	 */
	public String[] getJointStyleStr() {
		return jointStyleStr;
	}
	/**
	 * @param jointStyleStr  The jointStyleStr to set.
	 * @uml.property  name="jointStyleStr"
	 */
	public void setJointStyleStr(String[] jointStyleStr) {
		this.jointStyleStr = jointStyleStr;
	}
	/**
	 * @return  Returns the lineColor.
	 * @uml.property  name="lineColor"
	 */
	public Color getLineColor() {
		return lineColor;
	}
	/**
	 * @param lineColor  The lineColor to set.
	 * @uml.property  name="lineColor"
	 */
	public void setLineColor(Color lineColor) {
		this.lineColor = lineColor;
	}
	/**
	 * @return  Returns the lineColorField.
	 * @uml.property  name="lineColorField"
	 */
	public JTextField getLineColorField() {
		return lineColorField;
	}
	/**
	 * @param lineColorField  The lineColorField to set.
	 * @uml.property  name="lineColorField"
	 */
	public void setLineColorField(JTextField lineColorField) {
		this.lineColorField = lineColorField;
	}
	/**
	 * @return  Returns the lineColorPane.
	 * @uml.property  name="lineColorPane"
	 */
	public JPanel getLineColorPane() {
		return lineColorPane;
	}
	/**
	 * @param lineColorPane  The lineColorPane to set.
	 * @uml.property  name="lineColorPane"
	 */
	public void setLineColorPane(JPanel lineColorPane) {
		this.lineColorPane = lineColorPane;
	}
	/**
	 * @return  Returns the lineTypeCombo.
	 * @uml.property  name="lineTypeCombo"
	 */
	public JComboBox getLineTypeCombo() {
		return lineTypeCombo;
	}
	/**
	 * @param lineTypeCombo  The lineTypeCombo to set.
	 * @uml.property  name="lineTypeCombo"
	 */
	public void setLineTypeCombo(JComboBox lineTypeCombo) {
		this.lineTypeCombo = lineTypeCombo;
	}
	/**
	 * @return  Returns the lineTypeStr.
	 * @uml.property  name="lineTypeStr"
	 */
	public String[] getLineTypeStr() {
		return lineTypeStr;
	}
	/**
	 * @param lineTypeStr  The lineTypeStr to set.
	 * @uml.property  name="lineTypeStr"
	 */
	public void setLineTypeStr(String[] lineTypeStr) {
		this.lineTypeStr = lineTypeStr;
	}
	/**
	 * @return  Returns the lineWidth.
	 * @uml.property  name="lineWidth"
	 */
	public float getLineWidth() {
		return lineWidth;
	}
	/**
	 * @param lineWidth  The lineWidth to set.
	 * @uml.property  name="lineWidth"
	 */
	public void setLineWidth(float lineWidth) {
		this.lineWidth = lineWidth;
	}
	/**
	 * @return  Returns the lineWidthDecimalField.
	 * @uml.property  name="lineWidthDecimalField"
	 */
	public DecimalField getLineWidthDecimalField() {
		return lineWidthDecimalField;
	}
	/**
	 * @param lineWidthDecimalField  The lineWidthDecimalField to set.
	 * @uml.property  name="lineWidthDecimalField"
	 */
	public void setLineWidthDecimalField(DecimalField lineWidthDecimalField) {
		this.lineWidthDecimalField = lineWidthDecimalField;
	}
	/**
	 * @return  Returns the markFontSize.
	 * @uml.property  name="markFontSize"
	 */
	public int getMarkFontSize() {
		return markFontSize;
	}
	/**
	 * @param markFontSize  The markFontSize to set.
	 * @uml.property  name="markFontSize"
	 */
	public void setMarkFontSize(int markFontSize) {
		this.markFontSize = markFontSize;
	}
	/**
	 * @return  Returns the markFontSizeField.
	 * @uml.property  name="markFontSizeDecimalField"
	 */
	public DecimalField getMarkFontSizeDecimalField() {
		return markFontSizeDecimalField;
	}
	/**
	 * @param markFontSizeField  The markFontSizeField to set.
	 * @uml.property  name="markFontSizeDecimalField"
	 */
	public void setMarkFontSizeDecimalField(DecimalField markFontSizeField) {
		this.markFontSizeDecimalField = markFontSizeField;
	}
	/**
	 * @return  Returns the marksColorField.
	 * @uml.property  name="marksColorField"
	 */
	public JTextField getMarksColorField() {
		return marksColorField;
	}
	/**
	 * @param marksColorField  The marksColorField to set.
	 * @uml.property  name="marksColorField"
	 */
	public void setMarksColorField(JTextField marksColorField) {
		this.marksColorField = marksColorField;
	}
	/**
	 * @return  Returns the marksColorsPane.
	 * @uml.property  name="marksColorsPane"
	 */
	public JPanel getMarksColorsPane() {
		return marksColorsPane;
	}
	/**
	 * @param marksColorsPane  The marksColorsPane to set.
	 * @uml.property  name="marksColorsPane"
	 */
	public void setMarksColorsPane(JPanel marksColorsPane) {
		this.marksColorsPane = marksColorsPane;
	}
	/**
	 * @return  Returns the markSize.
	 * @uml.property  name="markSize"
	 */
	public int getMarkSize() {
		return markSize;
	}
	/**
	 * @param markSize  The markSize to set.
	 * @uml.property  name="markSize"
	 */
	public void setMarkSize(int markSize) {
		this.markSize = markSize;
	}
	/**
	 * @return  Returns the markSizeField.
	 * @uml.property  name="markSizeDecimalField"
	 */
	public DecimalField getMarkSizeDecimalField() {
		return markSizeDecimalField;
	}
	/**
	 * @param markSizeField  The markSizeField to set.
	 * @uml.property  name="markSizeDecimalField"
	 */
	public void setMarkSizeDecimalField(DecimalField markSizeField) {
		this.markSizeDecimalField = markSizeField;
	}
	/**
	 * @return  Returns the marksOnOff.
	 * @uml.property  name="marksOnOff"
	 */
	public JCheckBox getMarksOnOff() {
		return marksOnOff;
	}
	/**
	 * @param marksOnOff  The marksOnOff to set.
	 * @uml.property  name="marksOnOff"
	 */
	public void setMarksOnOff(JCheckBox marksOnOff) {
		this.marksOnOff = marksOnOff;
	}
	/**
	 * @return  Returns the marksSizeChosen.
	 * @uml.property  name="marksSizeChosen"
	 */
	public String[] getMarksSizeChosen() {
		return marksSizeChosen;
	}
	/**
	 * @param marksSizeChosen  The marksSizeChosen to set.
	 * @uml.property  name="marksSizeChosen"
	 */
	public void setMarksSizeChosen(String[] marksSizeChosen) {
		this.marksSizeChosen = marksSizeChosen;
	}
	/**
	 * @return  Returns the marksSizeCombo.
	 * @uml.property  name="marksSizeCombo"
	 */
	public JComboBox getMarksSizeCombo() {
		return marksSizeCombo;
	}
	/**
	 * @param marksSizeCombo  The marksSizeCombo to set.
	 * @uml.property  name="marksSizeCombo"
	 */
	public void setMarksSizeCombo(JComboBox marksSizeCombo) {
		this.marksSizeCombo = marksSizeCombo;
	}
	/**
	 * @return  Returns the marksTypeChosen.
	 * @uml.property  name="marksTypeChosen"
	 */
	public String[] getMarksTypeChosen() {
		return marksTypeChosen;
	}
	/**
	 * @param marksTypeChosen  The marksTypeChosen to set.
	 * @uml.property  name="marksTypeChosen"
	 */
	public void setMarksTypeChosen(String[] marksTypeChosen) {
		this.marksTypeChosen = marksTypeChosen;
	}
	/**
	 * @return  Returns the marksTypeCombo.
	 * @uml.property  name="marksTypeCombo"
	 */
	public JComboBox getMarksTypeCombo() {
		return marksTypeCombo;
	}
	/**
	 * @param marksTypeCombo  The marksTypeCombo to set.
	 * @uml.property  name="marksTypeCombo"
	 */
	public void setMarksTypeCombo(JComboBox marksTypeCombo) {
		this.marksTypeCombo = marksTypeCombo;
	}
	/**
	 * @return  Returns the marksTypeIndex.
	 * @uml.property  name="marksTypeIndex"
	 */
	public int getMarksTypeIndex() {
		return marksTypeIndex;
	}
	/**
	 * @param marksTypeIndex  The marksTypeIndex to set.
	 * @uml.property  name="marksTypeIndex"
	 */
	public void setMarksTypeIndex(int marksTypeIndex) {
		this.marksTypeIndex = marksTypeIndex;
	}

	/**
	 * @return  Returns the seqColorTitlePane.
	 * @uml.property  name="seqColorTitlePane"
	 */
	public JPanel getSeqColorTitlePane() {
		return seqColorTitlePane;
	}
	/**
	 * @param seqColorTitlePane  The seqColorTitlePane to set.
	 * @uml.property  name="seqColorTitlePane"
	 */
	public void setSeqColorTitlePane(JPanel seqColorTitlePane) {
		this.seqColorTitlePane = seqColorTitlePane;
	}
	/**
	 * @return  Returns the seqTitleColorField.
	 * @uml.property  name="seqTitleColorField"
	 */
	public JTextField getSeqTitleColorField() {
		return seqTitleColorField;
	}
	/**
	 * @param seqTitleColorField  The seqTitleColorField to set.
	 * @uml.property  name="seqTitleColorField"
	 */
	public void setSeqTitleColorField(JTextField seqTitleColorField) {
		this.seqTitleColorField = seqTitleColorField;
	}
	/**
	 * @return  Returns the sequenceTitle.
	 * @uml.property  name="sequenceTitle"
	 */
	public String getSequenceTitle() {
		return sequenceTitle;
	}
	/**
	 * @param sequenceTitle  The sequenceTitle to set.
	 * @uml.property  name="sequenceTitle"
	 */
	public void setSequenceTitle(String sequenceTitle) {
		this.sequenceTitle = sequenceTitle;
	}
	/**
	 * @return  Returns the sequenceTitleColor.
	 * @uml.property  name="titleColor"
	 */
	public Color getTitleColor() {
		return titleColor;
	}
	/**
	 * @param sequenceTitleColor  The sequenceTitleColor to set.
	 * @uml.property  name="titleColor"
	 */
	public void setTitleColor(Color sequenceTitleColor) {
		this.titleColor = sequenceTitleColor;
	}
	/**
	 * @return  Returns the sequenceTitleField.
	 * @uml.property  name="sequenceTitleField"
	 */
	public JTextField getSequenceTitleField() {
		return sequenceTitleField;
	}
	/**
	 * @param sequenceTitleField  The sequenceTitleField to set.
	 * @uml.property  name="sequenceTitleField"
	 */
	public void setSequenceTitleField(JTextField sequenceTitleField) {
		this.sequenceTitleField = sequenceTitleField;
	}
	/**
	 * @return  Returns the sequenceTitleSizeDecimalField.
	 * @uml.property  name="sequenceTitleSizeDecimalField"
	 */
	public DecimalField getSequenceTitleSizeDecimalField() {
		return sequenceTitleSizeDecimalField;
	}
	/**
	 * @param sequenceTitleSizeDecimalField  The sequenceTitleSizeDecimalField to set.
	 * @uml.property  name="sequenceTitleSizeDecimalField"
	 */
	public void setSequenceTitleSizeDecimalField(
			DecimalField sequenceTitleSizeDecimalField) {
		this.sequenceTitleSizeDecimalField = sequenceTitleSizeDecimalField;
	}
	/**
	 * @return  Returns the titleStyleCombo.
	 * @uml.property  name="titleStyleCombo"
	 */
	public JComboBox getTitleStyleCombo() {
		return titleStyleCombo;
	}
	/**
	 * @param titleStyleCombo  The sequenceTitleStyleCombo to set.
	 * @uml.property  name="titleStyleCombo"
	 */
	public void setTitleStyleCombo(JComboBox sequenceTitleStyleCombo) {
		this.titleStyleCombo = sequenceTitleStyleCombo;
	}
	/**
	 * @return  Returns the sizeFontSequenceTitle.
	 * @uml.property  name="sizeFontSequenceTitle"
	 */
	public int getSizeFontSequenceTitle() {
		return sizeFontSequenceTitle;
	}
	/**
	 * @param sizeFontSequenceTitle  The sizeFontSequenceTitle to set.
	 * @uml.property  name="sizeFontSequenceTitle"
	 */
	public void setSizeFontSequenceTitle(int sizeFontSequenceTitle) {
		this.sizeFontSequenceTitle = sizeFontSequenceTitle;
	}
	/**
	 * @return  Returns the state.
	 * @uml.property  name="state"
	 */
	public XYPlotViewState getState() {
		return state;
	}
	/**
	 * @param state  The state to set.
	 * @uml.property  name="state"
	 */
	public void setState(XYPlotViewState state) {
		this.state = state;
	}
	/**
	 * @return  Returns the textFontSizeChosen.
	 * @uml.property  name="textFontSizeChosen"
	 */
	public String[] getTextFontSizeChosen() {
		return textFontSizeChosen;
	}
	/**
	 * @param textFontSizeChosen  The textFontSizeChosen to set.
	 * @uml.property  name="textFontSizeChosen"
	 */
	public void setTextFontSizeChosen(String[] textFontSizeChosen) {
		this.textFontSizeChosen = textFontSizeChosen;
	}
	/**
	 * @return  Returns the textFontStr.
	 * @uml.property  name="textFontStr"
	 */
	public String[] getTextFontStr() {
		return textFontStr;
	}
	/**
	 * @param textFontStr  The textFontStr to set.
	 * @uml.property  name="textFontStr"
	 */
	public void setTextFontStr(String[] textFontStr) {
		this.textFontStr = textFontStr;
	}
	/**
	 * @return  Returns the textMarksFontCombo.
	 * @uml.property  name="textMarksFontCombo"
	 */
	public JComboBox getTextMarksFontCombo() {
		return textMarksFontCombo;
	}
	/**
	 * @param textMarksFontCombo  The textMarksFontCombo to set.
	 * @uml.property  name="textMarksFontCombo"
	 */
	public void setTextMarksFontCombo(JComboBox textMarksFontCombo) {
		this.textMarksFontCombo = textMarksFontCombo;
	}
	/**
	 * @return  Returns the textMarksFontSizeCombo.
	 * @uml.property  name="textMarksFontSizeCombo"
	 */
	public JComboBox getTextMarksFontSizeCombo() {
		return textMarksFontSizeCombo;
	}
	/**
	 * @param textMarksFontSizeCombo  The textMarksFontSizeCombo to set.
	 * @uml.property  name="textMarksFontSizeCombo"
	 */
	public void setTextMarksFontSizeCombo(JComboBox textMarksFontSizeCombo) {
		this.textMarksFontSizeCombo = textMarksFontSizeCombo;
	}
	/**
	 * @return  Returns the textMarksIndex.
	 * @uml.property  name="textMarksIndex"
	 */
	public int getTextMarksIndex() {
		return TextMarksIndex;
	}
	/**
	 * @param textMarksIndex  The textMarksIndex to set.
	 * @uml.property  name="textMarksIndex"
	 */
	public void setTextMarksIndex(int textMarksIndex) {
		TextMarksIndex = textMarksIndex;
	}
	/**
	 * @return  Returns the textMarksOnOff.
	 * @uml.property  name="textMarksOnOff"
	 */
	public JCheckBox getTextMarksOnOff() {
		return textMarksOnOff;
	}
	/**
	 * @param textMarksOnOff  The textMarksOnOff to set.
	 * @uml.property  name="textMarksOnOff"
	 */
	public void setTextMarksOnOff(JCheckBox textMarksOnOff) {
		this.textMarksOnOff = textMarksOnOff;
	}
	/**
	 * @return  Returns the title.
	 * @uml.property  name="title"
	 */
	public String getTitle() {
		return title;
	}
	/**
	 * @param title  The title to set.
	 * @uml.property  name="title"
	 */
	public void setTitle(String title) {
		this.title = title;
	}
	/**
	 * @return  Returns the titleFontCombo.
	 * @uml.property  name="titleFontCombo"
	 */
	public JComboBox getTitleFontCombo() {
		return titleFontCombo;
	}
	/**
	 * @param titleFontCombo  The titleFontCombo to set.
	 * @uml.property  name="titleFontCombo"
	 */
	public void setTitleFontCombo(JComboBox titleFontCombo) {
		this.titleFontCombo = titleFontCombo;
	}
}
